#ifndef MTFORSTATEMENT_H
#define MTFORSTATEMENT_H

#include "MTStatement.hpp"
#include "MTBlock.hpp"

namespace MathematicaTranslator {

	/** 
	  *  "For" statement representation
	  */
	class MTForStatement : public MTStatement {

	public:
		/// Initialization list
		VariableList varList;
		/// Test conditions
		MTExpression &conditions;
		/// Incrementing statements list
		ExpressionList incrementList;
		/// Body
		MTBlock &body;

		MTForStatement(const VariableList &variableList, MTExpression &conditions, ExpressionList &incrementList, MTBlock &body) 
			: varList(variableList), conditions(conditions), incrementList(incrementList), body(body) {}

		virtual std::string* generateCode(CodeGenContext& context);
	};

}
#endif
